/*
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 * 02111-1307, USA.
 *
 * http://www.gnu.org/copyleft/gpl.html
 */

package l1j.server.server.model.map;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.util.HashMap;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;

import l1j.server.server.datatables.MapsTable;

/**
 * テキストマップ(maps/\d*.txt)を読み込む.
 */
public class TextMapReader extends MapReader {

	/** メッセージログ用. */
	private static Logger _log = Logger
			.getLogger(TextMapReader.class.getName());

	/** マップホルダー. */
	private static final String MAP_DIR = "./maps/";

	/** MAP_INFO用 マップ番号位置. */
	public static final int MAPINFO_MAP_NO = 0;

	/** MAP_INFO用 開始X座標の位置. */
	public static final int MAPINFO_START_X = 1;

	/** MAP_INFO用 最終X座標の位置. */
	public static final int MAPINFO_END_X = 2;

	/** MAP_INFO用 開始Y座標の位置. */
	public static final int MAPINFO_START_Y = 3;

	/** MAP_INFO用 開始Y座標の位置. */
	public static final int MAPINFO_END_Y = 4;

	/**
	 * mapInfo：マップNo、マップサイズを保持している.
	 * 1レコードが{mapNo,StartX,EndX,StartY,EndY}で構成されている.
	 */
	private static final int[][] MAP_INFO = {
		{ 0, 32256, 32767, 32768, 33279 },
		{ 1, 32576, 32831, 32704, 32959 },
		{ 2, 32576, 32895, 32704, 32959 },
		{ 3, 32576, 32831, 32704, 32959 },
		{ 4, 32448, 34303, 32064, 33599 },
		{ 5, 32704, 32767, 32768, 32831 },
		{ 6, 32704, 32831, 32768, 32831 },
		{ 7, 32640, 32895, 32640, 32895 },
		{ 8, 32640, 32895, 32640, 32895 },
		{ 9, 32640, 32895, 32640, 32895 },
		{ 10, 32640, 32831, 32640, 32895 },
		{ 11, 32640, 32895, 32640, 32895 },
		{ 12, 32640, 32895, 32640, 32895 },
		{ 13, 32640, 32895, 32640, 32895 },
		{ 14, 32512, 33023, 32704, 32895 },
		{ 15, 32704, 32767, 32768, 32831 },
		{ 16, 32704, 32831, 32704, 32895 },
		{ 17, 32704, 32767, 32768, 32831 },
		{ 18, 32704, 32767, 32768, 32831 },
		{ 19, 32704, 32895, 32640, 32895 },
		{ 20, 32704, 32831, 32704, 32831 },
		{ 21, 32640, 32831, 32704, 32895 },
		{ 22, 32640, 32895, 32640, 32895 },
		{ 23, 32640, 32895, 32640, 32895 },
		{ 24, 32640, 32895, 32640, 32895 },
		{ 25, 32704, 32895, 32704, 32831 },
		{ 26, 32704, 32895, 32640, 32895 },
		{ 27, 32640, 32895, 32704, 32895 },
		{ 28, 32640, 32895, 32704, 32895 },
		{ 29, 32704, 32767, 32768, 32831 },
		{ 30, 32640, 32895, 32640, 32895 },
		{ 31, 32640, 32895, 32640, 32895 },
		{ 32, 32576, 32831, 32704, 32959 },
		{ 33, 32576, 32831, 32704, 32959 },
		{ 34, 32640, 32831, 32704, 32895 },
		{ 35, 32576, 32831, 32704, 32959 },
		{ 36, 32576, 32831, 32704, 32959 },
		{ 37, 32576, 32831, 32704, 32959 },
		{ 38, 32640, 32831, 32704, 32895 },
		{ 39, 32640, 32831, 32704, 32895 },
		{ 40, 32640, 32831, 32704, 32895 },
		{ 41, 32640, 32831, 32704, 32895 },
		{ 42, 32512, 32831, 32704, 33023 },
		{ 43, 32704, 32831, 32704, 32831 },
		{ 44, 32704, 32831, 32704, 32831 },
		{ 45, 32704, 32831, 32704, 32831 },
		{ 46, 32704, 32831, 32704, 32831 },
		{ 47, 32704, 32831, 32704, 32831 },
		{ 48, 32704, 32831, 32704, 32831 },
		{ 49, 32704, 32831, 32704, 32831 },
		{ 50, 32704, 32831, 32704, 32831 },
		{ 51, 32640, 32831, 32704, 32895 },
		{ 52, 32640, 32767, 32768, 32895 },
		{ 53, 32640, 32895, 32640, 32895 },//TODO 奇岩地監 1樓
		{ 54, 32640, 32895, 32640, 32895 },//TODO 奇岩地監 2樓
		{ 55, 32640, 32831, 32704, 32959 },//TODO 奇岩地監 3樓
		{ 56, 32640, 32895, 32640, 32895 },//TODO 奇岩地監 4樓
		{ 57, 32576, 33023, 32512, 32959 },
		{ 58, 32512, 32831, 32704, 33023 },
		{ 59, 32640, 32831, 32768, 32895 },
		{ 60, 32640, 32767, 32768, 32959 },
		{ 61, 32640, 32767, 32768, 32895 },
		{ 62, 32640, 32767, 32768, 32895 },
		{ 63, 32576, 32895, 32640, 32959 },
		{ 64, 32512, 32639, 32768, 32895 },
		{ 65, 32704, 32831, 32768, 32895 },
		{ 66, 32704, 32895, 32768, 32959 },
		{ 67, 32640, 32831, 32704, 32895 },
		{ 68, 32576, 33023, 32512, 32959 },
		{ 69, 32512, 32831, 32704, 33023 },
		{ 70, 32576, 33023, 32640, 33087 },
		{ 72, 32704, 32895, 32768, 32895 },// TODO 修正水晶洞穴卡點 by 0968026609
		{ 73, 32704, 32895, 32704, 32895 },// TODO 修正水晶洞穴卡點 by 0968026609
		{ 74, 32704, 32895, 32768, 32959 },// TODO 修正水晶洞穴卡點 by 0968026609
		{ 75, 32704, 32831, 32768, 32959 },
		{ 76, 32704, 32831, 32768, 32895 },
		{ 77, 32704, 32831, 32768, 32895 },
		{ 78, 32832, 32959, 32704, 32831 },
		{ 79, 32704, 32831, 32768, 32895 },
		{ 80, 32704, 32831, 32768, 32895 },
		{ 81, 32704, 32831, 32768, 32895 },
		{ 82, 32640, 32767, 32768, 32895 },
		{ 83, 32704, 32831, 32768, 32831 },
		{ 84, 32704, 32767, 32768, 32831 },
		{ 85, 32512, 32831, 32640, 32959 },
		{ 86, 32768, 33023, 32704, 32895 },
		{ 87, 32704, 32767, 32768, 32831 },
		{ 88, 33472, 33599, 32640, 32767 },
		{ 89, 32640, 32767, 32832, 32959 },
		{ 90, 32640, 32767, 32832, 32959 },
		{ 91, 32640, 32767, 32832, 32959 },
		{ 92, 32640, 32767, 32832, 32959 },
		{ 93, 32640, 32767, 32832, 32959 },
		{ 94, 32640, 32767, 32832, 32959 },
		{ 95, 32640, 32767, 32832, 32959 },
		{ 96, 32640, 32767, 32832, 32959 },
		{ 97, 32640, 32767, 32832, 32959 },
		{ 98, 32640, 32767, 32832, 32959 },
		{ 99, 32704, 32767, 32768, 32831 },
		{ 100, 32704, 32831, 32768, 32895 },
		{ 101, 32704, 32895, 32704, 32895 },
		{ 102, 32704, 32895, 32704, 32895 },
		{ 103, 32704, 32895, 32704, 32895 },
		{ 104, 32576, 32767, 32768, 32959 },
		{ 105, 32576, 32767, 32768, 32959 },
		{ 106, 32576, 33855, 32768, 32959 },
		{ 107, 32576, 32767, 32768, 32959 },
		{ 108, 32576, 32767, 32768, 32959 },
		{ 109, 32576, 32767, 32768, 32959 },
		{ 110, 32704, 32895, 32704, 32895 },
		{ 111, 32576, 32767, 32768, 32959 },
		{ 112, 32704, 32895, 32704, 32895 },
		{ 113, 32704, 32895, 32704, 32895 },
		{ 114, 32576, 32767, 32768, 32959 },
		{ 115, 32576, 32767, 32768, 32959 },
		{ 116, 32704, 32831, 32832, 32895 },
		{ 117, 32576, 32767, 32768, 32959 },
		{ 118, 32576, 32767, 32768, 32959 },
		{ 119, 32576, 32767, 32768, 32959 },
		{ 120, 32704, 32895, 32704, 32895 },
		{ 121, 32576, 32767, 32768, 32959 },
		{ 122, 32704, 32895, 32704, 32895 },
		{ 123, 32704, 32895, 32704, 32895 },
		{ 124, 32576, 32767, 32768, 32959 },
		{ 125, 32576, 32767, 32768, 32959 },
		{ 126, 32704, 32831, 32832, 32895 },
		{ 127, 32576, 32767, 32768, 32959 },
		{ 128, 32576, 32767, 32768, 32959 },
		{ 129, 32576, 32767, 32768, 32959 },
		{ 130, 32704, 32895, 32704, 32895 },
		{ 131, 32576, 32767, 32768, 32959 },
		{ 132, 32704, 32895, 32704, 32895 },
		{ 133, 32704, 32895, 32704, 32895 },
		{ 134, 32576, 32767, 32768, 32959 },
		{ 135, 32576, 32767, 32768, 32959 },
		{ 136, 32704, 32831, 32832, 32895 },
		{ 137, 32576, 32767, 32768, 32959 },
		{ 138, 32576, 32767, 32768, 32959 },
		{ 139, 32576, 32767, 32768, 32959 },
		{ 140, 32704, 32895, 32704, 32895 },
		{ 141, 32576, 32767, 32768, 32959 },
		{ 142, 32704, 32895, 32704, 32895 },
		{ 143, 32704, 32895, 32704, 32895 },
		{ 144, 32576, 32767, 32768, 32959 },
		{ 145, 32576, 32767, 32768, 32959 },
		{ 146, 32576, 32831, 32768, 32959 },
		{ 147, 32576, 32767, 32768, 32959 },
		{ 148, 32576, 32767, 32768, 32959 },
		{ 149, 32576, 32767, 32768, 32959 },
		{ 150, 32704, 32895, 32704, 32895 },
		{ 151, 32576, 32767, 32768, 32959 },
		{ 152, 32576, 32767, 32768, 32959 },
		{ 153, 32576, 32767, 32768, 32959 },
		{ 154, 32704, 32895, 32704, 32895 },
		{ 155, 32704, 32895, 32704, 32895 },
		{ 156, 32704, 32831, 32768, 32831 },
		{ 157, 32576, 32767, 32768, 32959 },
		{ 158, 32576, 32767, 32768, 32959 },
		{ 159, 32576, 32767, 32768, 32959 },
		{ 160, 32576, 32767, 32768, 32959 },
		{ 161, 32576, 32767, 32768, 32959 },
		{ 162, 32576, 32767, 32768, 32959 },
		{ 163, 32576, 32767, 32768, 32959 },
		{ 164, 32704, 32895, 32704, 32895 },
		{ 165, 32704, 32895, 32704, 32895 },
		{ 166, 32704, 32831, 32768, 32831 },
		{ 167, 32576, 32767, 32768, 32959 },
		{ 168, 32576, 32767, 32768, 32959 },
		{ 169, 32576, 32767, 32768, 32959 },
		{ 170, 32576, 32767, 32768, 32959 },
		{ 171, 32576, 32767, 32768, 32959 },
		{ 172, 32576, 32767, 32768, 32959 },
		{ 173, 32576, 32767, 32768, 32959 },
		{ 174, 32704, 32895, 32704, 32895 },
		{ 175, 32704, 32895, 32704, 32895 },
		{ 176, 32704, 32831, 32768, 32831 },
		{ 177, 32576, 32767, 32768, 32959 },
		{ 178, 32576, 32767, 32768, 32959 },
		{ 179, 32576, 32767, 32768, 32959 },
		{ 180, 32576, 32767, 32768, 32959 },
		{ 181, 32576, 32767, 32768, 32959 },
		{ 182, 32576, 32767, 32768, 32959 },
		{ 183, 32576, 32767, 32768, 32959 },
		{ 184, 32704, 32895, 32704, 32895 },
		{ 185, 32704, 32895, 32704, 32895 },
		{ 186, 32704, 32831, 32768, 32831 },
		{ 187, 32576, 32767, 32768, 32959 },
		{ 188, 32576, 32767, 32768, 32959 },
		{ 189, 32576, 32767, 32768, 32959 },
		{ 190, 32576, 32767, 32768, 32959 },
		{ 191, 32576, 32767, 32768, 32959 },
		{ 192, 32576, 32767, 32768, 32959 },
		{ 193, 32576, 32767, 32768, 32959 },
		{ 194, 32704, 32895, 32704, 32895 },
		{ 195, 32704, 32895, 32704, 32895 },
		{ 196, 32704, 32831, 32768, 32831 },
		{ 197, 32576, 32767, 32768, 32959 },
		{ 198, 32576, 32767, 32768, 32959 },
		{ 199, 32576, 32767, 32768, 32959 },
		{ 200, 32576, 32831, 32768, 33023 },
		{ 201, 32640, 33535, 32704, 32959 },
		{ 202, 32640, 33535, 32704, 32895 },
		{ 203, 32640, 33535, 32704, 32895 },
		{ 204, 32640, 33535, 32704, 32895 },
		{ 205, 32640, 33535, 32704, 32895 },
		{ 206, 32640, 33535, 32704, 32895 },
		{ 207, 32640, 33535, 32704, 32895 },
		{ 208, 32640, 33535, 32704, 32895 },
		{ 209, 32704, 32767, 32768, 32831 },
		{ 210, 32640, 33535, 32704, 32895 },
		{ 211, 32640, 33535, 32704, 32895 },
		{ 213, 32704, 32767, 32768, 32831 },
		{ 217, 32640, 32767, 32768, 32831 },
		{ 221, 32640, 32895, 32640, 32895 },
		{ 237, 32704, 32767, 32768, 32831 },
		{ 240, 32640, 32767, 33024, 33151 },
		{ 241, 32704, 32831, 32832, 32959 },
		{ 242, 32704, 32831, 32896, 33087 },
		{ 243, 32640, 32767, 32832, 33023 },
		{ 244, 32704, 33023, 32768, 33087 },
		{ 248, 32704, 32831, 32768, 32895 },
		{ 249, 32704, 32831, 32832, 32895 },
		{ 250, 32704, 32831, 32768, 32895 },
		{ 251, 32768, 32831, 32768, 32831 },
		{ 252, 32576, 32767, 32832, 32895 },
		{ 253, 32704, 32831, 32832, 33023 },
		{ 254, 32576, 32767, 32768, 32959 },
		{ 255, 32640, 32831, 32768, 32895 },
		{ 256, 32640, 32895, 32768, 33023 },
		{ 257, 32640, 32831, 32768, 32895 },
		{ 258, 32576, 32831, 32768, 33151 },
		{ 259, 32704, 32767, 32768, 33023 },
		{ 260, 32704, 32895, 32768, 32895 },// opqlo 冰晶洞穴1
		{ 261, 32704, 32895, 32768, 32895 },// opqlo 冰晶洞穴2
		{ 262, 32704, 32895, 32768, 32895 },// opqlo 冰晶洞穴3
		{ 263, 32704, 32895, 32768, 32895 },// opqlo 冰晶洞穴4
		{ 264, 32704, 32895, 32768, 32895 },// opqlo 冰晶洞穴5
		{ 280, 32832, 32959, 32704, 32831 },// opqlo 亞怒斯的象牙塔 4樓 炎魔營
		{ 281, 32704, 32831, 32768, 32895 },// opqlo 亞怒斯的象牙塔 5樓 炎魔營
		{ 282, 32704, 32831, 32768, 32895 },// opqlo 亞怒斯的象牙塔 6樓 炎魔營
		{ 283, 32704, 32831, 32768, 32895 },// opqlo 亞怒斯的象牙塔 7樓 炎魔營
		{ 284, 32640, 32767, 32768, 32895 },// opqlo 亞怒斯的象牙塔 8樓 炎魔營
		{ 300, 32832, 32959, 32448, 32639 },
		{ 301, 32576, 32767, 32768, 33023 },
		{ 302, 32704, 32767, 32832, 32895 },
		{ 303, 32576, 32959, 32512, 32895 },
		{ 304, 32576, 32959, 32704, 33023 },
		{ 305, 32704, 32767, 32768, 32831 },
		{ 306, 32512, 32767, 32768, 32959 },
		{ 307, 32704, 32959, 32768, 32959 },
		{ 308, 32704, 33023, 32768, 32959 },
		{ 309, 32704, 33087, 32768, 32959 },
		{ 310, 32640, 32895, 32768, 33023 },
		{ 320, 32640, 33087, 32768, 33087 },
		{ 330, 32640, 32831, 32768, 33023 },
		{ 340, 32640, 32895, 32704, 32959 },
		{ 350, 32640, 32767, 32768, 32895 },
		{ 360, 32640, 32831, 32704, 32895 },
		{ 370, 32640, 32831, 32704, 32895 },
		{ 400, 32448, 33087, 32576, 33087 },
		{ 401, 32704, 32895, 32768, 32895 },
		{ 410, 32640, 32959, 32704, 33087 },
		{ 420, 32640, 32831, 32832, 33151 },
		{ 430, 32640, 33023, 32704, 33087 },
		{ 440, 32256, 32767, 32768, 33279 },
		{ 441, 32640, 32895, 32704, 32959 },
		{ 442, 32704, 32895, 32704, 32895 },
		{ 443, 32640, 32895, 32640, 32959 },
		{ 444, 32704, 32767, 32768, 32831 },
		{ 445, 32704, 32831, 32832, 32895 },
		{ 446, 32704, 32831, 32768, 32831 },
		{ 447, 32704, 32767, 32768, 32831 },
		{ 450, 32576, 32831, 32768, 32959 },
		{ 451, 32704, 32895, 32704, 32895 },
		{ 452, 32704, 32831, 32768, 32895 },
		{ 453, 32704, 32895, 32704, 32895 },
		{ 454, 32704, 32895, 32704, 32895 },
		{ 455, 32704, 32895, 32768, 32895 },
		{ 456, 32704, 32831, 32768, 32895 },
		{ 457, 32640, 32767, 32768, 32895 },
		{ 460, 32704, 32895, 32768, 32895 },
		{ 461, 32640, 32895, 32768, 32895 },
		{ 462, 32640, 32895, 32768, 32895 },
		{ 463, 32704, 32831, 32768, 32895 },
		{ 464, 32704, 32831, 32768, 32895 },
		{ 465, 32704, 32831, 32768, 32895 },
		{ 466, 32704, 32831, 32768, 32895 },
		{ 467, 32640, 32767, 32768, 32895 },
		{ 468, 32576, 32703, 32832, 32959 },
		{ 470, 32640, 32895, 32768, 32895 },
		{ 471, 32704, 32831, 32768, 32895 },
		{ 472, 32640, 32831, 32704, 32895 },
		{ 473, 32704, 32959, 32768, 32895 },
		{ 474, 32704, 32831, 32768, 32895 },
		{ 475, 32640, 32831, 32768, 32895 },
		{ 476, 32704, 32831, 32704, 32895 },
		{ 477, 32704, 32831, 32768, 32959 },
		{ 478, 32640, 32831, 32704, 32895 },
		{ 480, 32576, 32895, 32768, 33023 },
		{ 481, 32640, 32831, 32768, 32895 },
		{ 482, 32576, 32831, 32704, 32895 },
		{ 483, 32640, 32895, 32704, 32959 },
		{ 484, 32704, 32895, 32704, 32895 },
		{ 490, 32640, 32767, 32768, 32895 },
		{ 491, 32640, 32767, 32704, 32895 },
		{ 492, 32704, 32895, 32768, 32895 },
		{ 493, 32704, 32831, 32704, 32831 },
		{ 494, 32768, 32895, 32704, 32831 },
		{ 495, 32704, 32895, 32704, 32895 },
		{ 496, 32768, 32895, 32768, 32895 },
		{ 500, 32640, 32831, 32704, 32895 },
		{ 501, 32576, 33215, 32512, 32959 },
		{ 502, 32576, 33215, 32576, 32959 },
		{ 503, 32576, 33215, 32576, 32959 },
		{ 504, 32576, 33215, 32576, 32959 },
		{ 505, 32576, 33215, 32576, 32959 },
		{ 506, 32512, 33215, 32576, 32959 },
		{ 507, 32704, 33023, 32768, 32959 },
		{ 508, 32768, 32895, 33088, 33215 },
		{ 511, 32576, 33215, 32576, 32895 },
		{ 512, 32576, 33215, 32576, 32895 },
		{ 513, 32576, 33215, 32576, 32895 },
		{ 514, 32576, 33215, 32576, 32895 },
		{ 515, 32576, 33215, 32576, 32895 },
		{ 516, 32576, 33215, 32576, 32895 },
		{ 518, 32640, 32831, 32704, 32895 },
		{ 519, 32768, 32895, 33088, 33215 },
		{ 520, 32768, 32895, 33088, 33215 },
		{ 521, 32576, 32767, 32832, 33023 },
		{ 522, 32576, 32831, 32832, 32959 },
		{ 523, 32576, 32831, 32832, 32959 },
		{ 524, 32576, 32831, 32832, 32959 },
		{ 530, 32704, 32959, 32768, 32959 },
		{ 531, 32704, 32895, 32704, 32959 },
		{ 532, 32704, 32895, 32768, 32895 },
		{ 533, 32704, 32895, 32768, 33023 },
		{ 534, 32704, 32959, 32768, 32895 },
		{ 535, 32576, 32895, 32704, 33023 },
		{ 536, 32640, 32831, 32704, 32895 },
		{ 541, 32640, 32831, 32768, 32895 },
		{ 542, 32640, 32831, 32768, 32895 },
		{ 543, 32704, 32895, 32704, 32895 },
		{ 550, 32384, 32895, 32640, 33151 },
		{ 551, 32640, 32767, 32768, 32895 },
		{ 552, 32704, 32767, 32768, 32895 },
		{ 553, 32704, 32831, 32768, 32895 },
		{ 554, 32704, 32831, 32768, 32895 },
		{ 555, 32704, 32767, 32768, 32895 },
		{ 556, 32704, 32831, 32768, 32895 },
		{ 557, 32704, 32831, 32768, 32895 },
		{ 558, 32704, 33215, 32768, 33279 },
		{ 600, 32640, 32895, 32704, 32895 },
		{ 601, 32640, 32959, 32704, 32959 },
		{ 602, 32640, 32767, 32768, 32895 },
		{ 603, 32640, 32767, 32768, 32895 },
		{ 604, 32768, 32895, 32768, 32895 },
		{ 605, 32704, 32959, 32704, 32959 },
		{ 606, 32640, 32895, 32704, 32895 },
		{ 607, 32640, 32895, 32768, 32959 },
		{ 608, 32640, 32767, 32832, 32959 },
		{ 610, 32640, 32895, 32704, 32959 },
		{ 611, 32640, 32895, 32640, 32831 },
		{ 612, 32640, 32895, 32704, 32959 },
		{ 613, 32640, 32895, 32768, 33023 },//TODO 奇怪之村落
		{ 620, 32768, 32831, 32768, 32831 },
		{ 621, 32640, 32895, 32768, 32959 },//TODO 詭異村落
		{ 630, 32704, 33023, 32768, 33087 },//TODO 天空之城
		{ 631, 32704, 33087, 32640, 33023 },//TODO 惡靈棲息地
		{ 632, 32640, 32959, 32576, 32895 },//TODO 羅馬世界
		{ 666, 32640, 32831, 32704, 32895 },
		{ 701, 32576, 33023, 32512, 32959 },
		{ 777, 32448, 32831, 32832, 33151 },
		{ 778, 32640, 32959, 32576, 33023 },
		{ 779, 32768, 33023, 32704, 32895 },
		{ 780, 32576, 32831, 32704, 33087 },
		{ 781, 32704, 33023, 32704, 32895 },
		{ 782, 32704, 32831, 32768, 32895 },
		{ 783, 32704, 33343, 32576, 32959 },
		{ 784, 32704, 32831, 32832, 32895 },
		{ 785, 32640, 32959, 32576, 32895 },// opqlo 死亡騎士的訓練場
		{ 997, 32704, 32767, 32768, 32831 },
		{ 998, 32704, 32767, 32768, 32831 },
		{ 1000, 32704, 32895, 32768, 32959 },
		{ 1001, 32704, 32895, 32768, 32959 },
		{ 1002, 32576, 33087, 32512, 33023 },//TODO 被遺忘的龍之谷
		{ 1003, 32640, 32895, 32832, 32959 },
		{ 1005, 32512, 33023, 32576, 33023 },//TODO 安塔瑞斯棲息地
		{ 1006, 32512, 33023, 32576, 33023 },//TODO 安塔瑞斯棲息地
		{ 1007, 32512, 33023, 32576, 33023 },//TODO 安塔瑞斯棲息地
		{ 1008, 32512, 33023, 32576, 33023 },//TODO 安塔瑞斯棲息地
		{ 1009, 32512, 33023, 32576, 33023 },//TODO 安塔瑞斯棲息地
		{ 1010, 32512, 33023, 32576, 33023 },//TODO 安塔瑞斯棲息地
		{ 1011, 32640, 33151, 32448, 32959 },//TODO 法利昂洞穴
		{ 1012, 32640, 33151, 32448, 32959 },//TODO 法利昂洞穴
		{ 1013, 32640, 33151, 32448, 32959 },//TODO 法利昂洞穴
		{ 1014, 32640, 33151, 32448, 32959 },//TODO 法利昂洞穴
		{ 1015, 32640, 33151, 32448, 32959 },//TODO 法利昂洞穴
		{ 1016, 32640, 33151, 32448, 32959 },//TODO 法利昂洞穴
		{ 1017, 32512, 33023, 32768, 33279 },//TODO 林德拜爾 棲息地
		{ 1018, 32512, 33023, 32768, 33279 },//TODO 林德拜爾 棲息地
		{ 1019, 32512, 33023, 32768, 33279 },//TODO 林德拜爾 棲息地
		{ 1020, 32512, 33023, 32768, 33279 },//TODO 林德拜爾 棲息地
		{ 1021, 32512, 33023, 32768, 33279 },//TODO 林德拜爾 棲息地
		{ 1022, 32512, 33023, 32768, 33279 },//TODO 林德拜爾 棲息地
		{ 1023, 32512, 32959, 32704, 33087 },//TODO 林德拜爾 棲息地
		{ 1783, 32704, 33343, 32576, 32959 },//opqlo BOSS區
		/**********無界擂台****************/
		{ 1784, 32640, 32895, 32640, 32959 },
		{ 1785, 32768, 32831, 32768, 32831 },
		{ 1786, 32768, 32831, 32768, 32831 },
		{ 1787, 32768, 32831, 32768, 32831 },
		{ 1788, 32704, 32895, 32704, 32895 },
		{ 1789, 32768, 32831, 32768, 32831 },
		{ 1790, 32704, 32895, 32704, 32895 },
		{ 1791, 32768, 32831, 32768, 32831 },
		{ 1792, 32768, 32831, 32768, 32831 },
		{ 1793, 32768, 32831, 32768, 32831 },
		{ 1794, 32704, 32895, 32704, 32895 },
		{ 1795, 32704, 32895, 32704, 32895 },
		{ 1796, 32704, 32959, 32640, 32895 },
		{ 1797, 32768, 32831, 32768, 32831 },
		{ 1798, 32768, 32831, 32768, 32831 },
		{ 1799, 32640, 32831, 32704, 32895 },
		{ 1800, 32640, 32831, 32576, 32831 },
		{ 1801, 32704, 32831, 32576, 32831 },
		{ 1802, 32704, 32831, 32576, 32831 },
		{ 1803, 32768, 32959, 32768, 32895 },
		{ 1804, 32768, 32959, 32768, 32895 },
		{ 1805, 32704, 32895, 32704, 32895 },
		{ 1806, 32640, 32895, 32704, 33023 },
		{ 1807, 32704, 32895, 32704, 32831 },
		{ 1808, 32704, 33087, 32704, 32895 },
		{ 1809, 32704, 32831, 32704, 32895 },
		{ 1810, 32704, 32831, 32768, 32895 },
		{ 1811, 32640, 32831, 32704, 32895 },
		{ 1812, 32640, 32831, 32704, 32895 },
		{ 1813, 32640, 32895, 32704, 32959 },
		{ 1814, 32640, 32895, 32704, 32959 },
		{ 1815, 32576, 32895, 32768, 33087 },
		{ 1816, 32640, 32895, 32640, 32895 },
		{ 1817, 32640, 32895, 32640, 32895 },
		{ 1818, 32640, 32895, 32640, 32895 },
		{ 1819, 32704, 32831, 32704, 32895 },
		{ 1820, 32576, 32959, 32704, 33023 },
		{ 1821, 32576, 32959, 32704, 33023 },
		{ 1822, 32576, 32831, 32704, 32895 },
		{ 1823, 32576, 32831, 32704, 32959 },
		{ 1824, 32640, 32895, 32832, 33087 },
		{ 1825, 32640, 32895, 32832, 33087 },
		{ 1826, 32704, 32831, 32704, 32831 },
		{ 1827, 32704, 32831, 32704, 32831 },
		{ 1828, 32704, 32895, 32512, 32831 },
		{ 1829, 32704, 32831, 32768, 32959 },
		{ 1830, 32704, 32767, 32768, 32831 },
		{ 1831, 32128, 32447, 32640, 32831 },
		{ 1832, 32576, 32895, 32768, 33023 },
		{ 1833, 32576, 32895, 32768, 33023 },
		{ 1834, 32704, 32767, 32768, 32831 },
		{ 1835, 32704, 32831, 32768, 32895 },
		{ 1836, 32640, 32767, 32768, 32895 },
		{ 1837, 32704, 32767, 32768, 32831 },
		{ 1838, 32704, 32767, 32768, 32831 },
		{ 1839, 32704, 32831, 32768, 32895 },
		{ 1840, 32640, 32767, 32768, 32895 },
		{ 1841, 32704, 32831, 32768, 32895 },
		{ 1842, 32704, 32831, 32768, 32895 },
		{ 1843, 32768, 32831, 32768, 32831 },
		{ 1844, 32768, 32831, 32768, 32831 },
		{ 1845, 32768, 32831, 32768, 32831 },
		/**********無界擂台****************/
		{ 1901, 32576, 32895, 32704, 33023 },//黑暗妖精聖地
		{ 2000, 32640, 32959, 32704, 33023 },
		{ 2001, 32640, 32959, 32704, 33023 },
		{ 2002, 32640, 32959, 32704, 33023 },
		{ 2003, 32640, 32959, 32704, 33023 },
		{ 2004, 32640, 32895, 32768, 32959 },
		{ 2005, 32512, 32895, 32704, 33087 },
		{ 2006, 32704, 32895, 32768, 32959 },
		{ 2007, 32512, 32703, 32640, 32895 },//opqlo 史萊姆回憶地
		{ 4301, 32704, 32959, 32768, 33023 },
		{ 4831, 32704, 32831, 32768, 32959 },
		{ 4941, 32768, 32895, 32704, 32831 },
		{ 5001, 32704, 32831, 32704, 32831 },
		{ 5002, 32704, 32831, 32704, 32831 },
		{ 5003, 32704, 32831, 32704, 32831 },
		{ 5004, 32704, 32831, 32704, 32831 },
		{ 5005, 32704, 32831, 32704, 32831 },
		{ 5006, 32704, 32831, 32704, 32831 },
		{ 5007, 32704, 32831, 32704, 32831 },
		{ 5008, 32704, 32831, 32704, 32831 },
		{ 5009, 32704, 32831, 32704, 32831 },
		{ 5010, 32704, 32831, 32704, 32831 },
		{ 5011, 32704, 32831, 32704, 32831 },
		{ 5012, 32704, 32831, 32704, 32831 },
		{ 5013, 32704, 32831, 32704, 32831 },
		{ 5014, 32704, 32831, 32704, 32831 },
		{ 5015, 32704, 32831, 32704, 32831 },
		{ 5016, 32704, 32831, 32704, 32831 },
		{ 5017, 32704, 32831, 32704, 32831 },
		{ 5018, 32704, 32831, 32704, 32831 },
		{ 5019, 32704, 32831, 32704, 32831 },
		{ 5020, 32704, 32831, 32704, 32831 },
		{ 5021, 32704, 32831, 32704, 32831 },
		{ 5022, 32704, 32831, 32704, 32831 },
		{ 5023, 32704, 32831, 32704, 32831 },
		{ 5024, 32704, 32831, 32704, 32831 },
		{ 5025, 32704, 32831, 32704, 32831 },
		{ 5026, 32704, 32831, 32704, 32831 },
		{ 5027, 32704, 32831, 32704, 32831 },
		{ 5028, 32704, 32831, 32704, 32831 },
		{ 5029, 32704, 32831, 32704, 32831 },
		{ 5030, 32704, 32831, 32704, 32831 },
		{ 5031, 32704, 32831, 32704, 32831 },
		{ 5032, 32704, 32831, 32704, 32831 },
		{ 5033, 32704, 32831, 32704, 32831 },
		{ 5034, 32704, 32831, 32704, 32831 },
		{ 5035, 32704, 32831, 32704, 32831 },
		{ 5036, 32704, 32831, 32704, 32831 },
		{ 5037, 32704, 32831, 32704, 32831 },
		{ 5038, 32704, 32831, 32704, 32831 },
		{ 5039, 32704, 32831, 32704, 32831 },
		{ 5040, 32704, 32831, 32704, 32831 },
		{ 5041, 32704, 32831, 32704, 32831 },
		{ 5042, 32704, 32831, 32704, 32831 },
		{ 5043, 32704, 32831, 32704, 32831 },
		{ 5044, 32704, 32831, 32704, 32831 },
		{ 5045, 32704, 32831, 32704, 32831 },
		{ 5046, 32704, 32831, 32704, 32831 },
		{ 5047, 32704, 32831, 32704, 32831 },
		{ 5048, 32704, 32831, 32704, 32831 },
		{ 5049, 32704, 32831, 32704, 32831 },
		{ 5050, 32704, 32831, 32704, 32831 },
		{ 5051, 32704, 32831, 32704, 32831 },
		{ 5052, 32704, 32831, 32704, 32831 },
		{ 5053, 32704, 32831, 32704, 32831 },
		{ 5054, 32704, 32831, 32704, 32831 },
		{ 5055, 32704, 32831, 32704, 32831 },
		{ 5056, 32704, 32831, 32704, 32831 },
		{ 5057, 32704, 32831, 32704, 32831 },
		{ 5058, 32704, 32831, 32704, 32831 },
		{ 5059, 32704, 32831, 32704, 32831 },
		{ 5060, 32704, 32831, 32704, 32831 },
		{ 5061, 32704, 32831, 32704, 32831 },
		{ 5062, 32704, 32831, 32704, 32831 },
		{ 5063, 32704, 32831, 32704, 32831 },
		{ 5064, 32704, 32831, 32704, 32831 },
		{ 5065, 32704, 32831, 32704, 32831 },
		{ 5066, 32704, 32831, 32704, 32831 },
		{ 5067, 32704, 32831, 32704, 32831 },
		{ 5068, 32704, 32831, 32768, 32895 },
		{ 5069, 32704, 32831, 32768, 32895 },
		{ 5070, 32704, 32831, 32768, 32895 },
		{ 5071, 32704, 32831, 32768, 32895 },
		{ 5072, 32704, 32831, 32768, 32895 },
		{ 5073, 32704, 32831, 32768, 32895 },
		{ 5074, 32704, 32831, 32768, 32895 },
		{ 5075, 32704, 32831, 32768, 32895 },
		{ 5076, 32704, 32831, 32768, 32895 },
		{ 5077, 32704, 32831, 32768, 32895 },
		{ 5078, 32704, 32831, 32768, 32895 },
		{ 5079, 32704, 32831, 32768, 32895 },
		{ 5080, 32704, 32831, 32768, 32895 },
		{ 5081, 32704, 32831, 32768, 32895 },
		{ 5082, 32704, 32831, 32768, 32895 },
		{ 5083, 32704, 32831, 32768, 32895 },
		{ 5084, 32704, 32831, 32768, 32895 },
		{ 5085, 32704, 32831, 32768, 32895 },
		{ 5086, 32704, 32831, 32768, 32895 },
		{ 5087, 32704, 32831, 32768, 32895 },
		{ 5088, 32704, 32831, 32768, 32895 },
		{ 5089, 32704, 32831, 32768, 32895 },
		{ 5090, 32704, 32831, 32768, 32895 },
		{ 5091, 32704, 32831, 32768, 32895 },
		{ 5092, 32704, 32831, 32768, 32895 },
		{ 5093, 32704, 32831, 32768, 32895 },
		{ 5094, 32704, 32831, 32768, 32895 },
		{ 5095, 32704, 32831, 32768, 32895 },
		{ 5096, 32704, 32831, 32768, 32895 },
		{ 5097, 32704, 32831, 32768, 32895 },
		{ 5098, 32704, 32831, 32768, 32895 },
		{ 5099, 32704, 32831, 32768, 32895 },
		{ 5100, 32704, 32831, 32768, 32895 },
		{ 5101, 32704, 32831, 32768, 32895 },
		{ 5102, 32704, 32831, 32768, 32895 },
		{ 5103, 32704, 32831, 32768, 32895 },
		{ 5104, 32704, 32831, 32768, 32895 },
		{ 5105, 32704, 32831, 32768, 32895 },
		{ 5106, 32704, 32831, 32768, 32895 },
		{ 5107, 32704, 32831, 32768, 32895 },
		{ 5108, 32704, 32831, 32768, 32895 },
		{ 5109, 32704, 32831, 32768, 32895 },
		{ 5110, 32704, 32831, 32768, 32895 },
		{ 5111, 32704, 32831, 32768, 32895 },
		{ 5112, 32704, 32831, 32768, 32895 },
		{ 5113, 32704, 32831, 32768, 32895 },
		{ 5114, 32704, 32831, 32768, 32895 },
		{ 5115, 32704, 32831, 32768, 32895 },
		{ 5116, 32704, 32831, 32768, 32895 },
		{ 5117, 32704, 32831, 32768, 32895 },
		{ 5118, 32704, 32831, 32768, 32895 },
		{ 5119, 32704, 32831, 32768, 32895 },
		{ 5120, 32704, 32831, 32768, 32895 },
		{ 5121, 32704, 32831, 32768, 32895 },
		{ 5122, 32704, 32831, 32768, 32895 },
		{ 5123, 32704, 32831, 32768, 32895 },
		{ 5124, 32704, 32895, 32704, 32895 },
		{ 5125, 32768, 32895, 32768, 32895 },
		{ 5131, 32768, 32831, 32832, 32895 },
		{ 5132, 32768, 32831, 32832, 32895 },
		{ 5133, 32768, 32831, 32832, 32895 },
		{ 5134, 32768, 32831, 32832, 32895 },
		{ 5140, 32640, 32959, 32704, 32959 },//TODO 幽靈之家
		{ 5141, 32640, 32959, 32704, 32959 },//TODO 幽靈之家
		{ 5142, 32640, 32959, 32704, 32959 },//TODO 幽靈之家
		{ 5143, 32704, 32831, 32768, 32895 },//TODO 寵物競速賽
		{ 5144, 32704, 32831, 32768, 32895 },//TODO 寵物競速賽
		{ 5145, 32704, 32831, 32768, 32895 },//TODO 寵物競速賽
		{ 5153, 32576, 32703, 32832, 32959 },
		{ 5166, 32704, 32831, 32768, 32895 },
		{ 5167, 32512, 32767, 32704, 32959 },
		{ 5168, 32512, 32767, 32704, 32959 },
		{ 5169, 32512, 32767, 32704, 32959 },
		{ 5170, 32512, 32767, 32704, 32959 },
		{ 5171, 32512, 32767, 32704, 32959 },
		{ 5172, 32512, 32767, 32704, 32959 },
		{ 5173, 32512, 32767, 32704, 32959 },
		{ 5174, 32512, 32767, 32704, 32959 },
		{ 5175, 32512, 32767, 32704, 32959 },
		{ 5176, 32512, 32767, 32704, 32959 },
		{ 5177, 32512, 32767, 32704, 32959 },
		{ 5178, 32512, 32767, 32704, 32959 },
		{ 5179, 32512, 32767, 32704, 32959 },
		{ 5180, 32512, 32767, 32704, 32959 },
		{ 5181, 32512, 32767, 32704, 32959 },
		{ 5182, 32512, 32767, 32704, 32959 },
		{ 5183, 32512, 32767, 32704, 32959 },
		{ 5184, 32512, 32767, 32704, 32959 },
		{ 5185, 32512, 32767, 32704, 32959 },
		{ 5186, 32512, 32767, 32704, 32959 },
		{ 5187, 32512, 32767, 32704, 32959 },
		{ 5188, 32512, 32767, 32704, 32959 },
		{ 5189, 32512, 32767, 32704, 32959 },
		{ 5190, 32512, 32767, 32704, 32959 },
		{ 5191, 32704, 32895, 32768, 32959 },
		{ 5192, 32704, 32895, 32768, 32959 },
		{ 5193, 32704, 32895, 32768, 32959 },
		{ 5194, 32704, 32895, 32768, 32959 },
		{ 5195, 32704, 32895, 32768, 32959 },
		{ 5196, 32704, 32895, 32768, 32959 },
		{ 5197, 32704, 32895, 32768, 32959 },
		{ 5198, 32704, 32895, 32768, 32959 },
		{ 5199, 32704, 32895, 32768, 32959 },
		{ 5200, 32704, 32895, 32768, 32959 },
		{ 5300, 32640, 32895, 32704, 32959 },//TODO 釣魚池
		{ 5301, 32640, 32895, 32704, 32959 },//TODO 釣魚池
		{ 5302, 32640, 32895, 32704, 32959 },//TODO 釣魚池
		{ 5303, 32704, 32895, 32768, 32959 },
		{ 5384, 32704, 32895, 32640, 32831 },
		{ 5435, 32704, 32959, 32704, 32959 },
		{ 5501, 32704, 32959, 32832, 33087 },
		{ 5551, 32704, 32959, 32832, 33087 },// opqlo 哈爾帕斯教的集會場
		{ 5577, 32704, 32831, 32768, 32895 },
		{ 5701, 32576, 33023, 32512, 32959 },
		{ 5801, 32512, 32831, 32704, 33023 },
		{ 5802, 32512, 32831, 32704, 33023 },
		{ 5803, 32512, 32831, 32704, 33023 },
		{ 5804, 32512, 32831, 32704, 33023 },
		{ 5805, 32512, 32831, 32704, 33023 },
		{ 5806, 32512, 32831, 32704, 33023 },//TODO 崑崙山6
		{ 5807, 32512, 32831, 32704, 33023 },//TODO 崑崙山7
		{ 5808, 32512, 32831, 32704, 33023 },//TODO 崑崙山7
		{ 5809, 32512, 32831, 32704, 33023 },//TODO 崑崙山7
		{ 5810, 32512, 32831, 32704, 33023 },//TODO 崑崙山7
		{ 6003, 32704, 32895, 32768, 32959 },//TODO 聖獸地圖by0968026609
		{ 6041, 32768, 32895, 32768, 32895 },//TODO 極惡之地
		{ 6051, 32768, 32895, 32768, 32895 },
		{ 6201, 32768, 33151, 32768, 33151 },// opqlo 女性單身派對
		{ 6301, 32704, 33023, 32768, 33087 },//TODO 天空之城
		{ 6302, 32640, 33023, 32576, 33087 },//TODO 天空之城
		{ 6303, 32640, 33023, 32576, 33087 },//TODO 天空之城
		{ 6311, 32704, 33023, 32640, 32959 },//TODO 異次元空間
		{ 6312, 32640, 33023, 32576, 32959 },//TODO 異次元空間
		{ 6313, 32640, 33023, 32576, 32959 },//TODO 異次元空間
		{ 6321, 32640, 32959, 32576, 32895 },//TODO 羅馬世界
		{ 6322, 32640, 32959, 32576, 32895 },//TODO 羅馬世界
		{ 6323, 32640, 32959, 32576, 32895 },//TODO 羅馬世界
		{ 6801, 32640, 33023, 32576, 32895 },
		{ 6901, 32512, 32831, 32704, 33023 },
		{ 7000, 32640, 32959, 32576, 32895 },
		{ 7001, 32576, 33023, 32640, 33087 },
		{ 7002, 32512, 32767, 32512, 32767 },
		{ 7007, 32704, 32895, 32768, 32959 },
		{ 7012, 32704, 32831, 32768, 32895 },
		{ 7051, 32640, 32959, 32576, 32895 },
		{ 7057, 32704, 32831, 32768, 32959 },
		{ 7100, 32704, 32959, 32832, 33087 },
		/***************opqlo*******************/
		{ 7771, 32640, 32959, 32576, 32895 },
		{ 7772, 32640, 32959, 32576, 32895 },
		{ 7773, 32640, 32959, 32576, 32895 },
		{ 7774, 32640, 32959, 32576, 32895 },
		{ 7775, 32640, 32959, 32576, 32895 },
		{ 7781, 32704, 32895, 32768, 32959 },
		{ 7782, 32704, 32895, 32768, 32959 },
		{ 7783, 32704, 32895, 32768, 32959 },
		{ 7784, 32704, 32895, 32768, 32959 },
		{ 7785, 32640, 33023, 32768, 32959 },// opqlo 魔族實驗室
		{ 7786, 32704, 32895, 32768, 32959 },// opqlo 魔族實驗室2樓
		{ 7788, 32640, 32895, 32768, 32959 },
		{ 7789, 32768, 32895, 32704, 32831 },
		{ 7790, 32576, 32831, 32704, 33087 },
		{ 7791, 32448, 32831, 32832, 33151 },
		{ 7792, 32640, 32895, 32640, 32831 },
		{ 7793, 32704, 32895, 32704, 32895 },
		{ 7794 , 32576 , 32767 , 32768 , 33023 },//301
		{ 7795 , 32256 , 32767 , 32768 , 33279 },//440
		{ 7796 , 32384 , 32895 , 32640 , 33151 },//550
		{ 7797 , 32640 , 32959 , 32704 , 32959 },//601
	//	{ 7798, 32640, 32895, 32640, 32959 },//test 無界
		/***************************************/
		{ 7787, 32704, 32831, 32704, 32831 },//opqlo 正服-角鬥場
		{ 8011, 32768, 32895, 32768, 32895 },
		{ 8012, 32704, 32895, 32704, 32895 },
		{ 8013, 32704, 32767, 32768, 32831 },
		{ 8014, 32704, 32767, 32704, 32831 },
		{ 8015, 32704, 32831, 32704, 32831 },
		{ 9000, 32576, 32895, 32640, 33023 },
		{ 9100, 32704, 32767, 32832, 32895 },
		{ 9101, 32640, 32831, 32768, 32895 },//opqlo 【秘譚二：影法師歐林】Part 2
		{ 9102, 32704, 32831, 32768, 32895 },//opqlo 【秘譚二：影法師歐林】Part 2

		{ 9800, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9801, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9802, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9803, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9804, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9805, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9806, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9807, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9808, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9809, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9810, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9811, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9812, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9813, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9814, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9815, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9816, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9817, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9818, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9819, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9820, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9821, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9822, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9823, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9824, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9825, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9826, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9827, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9828, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9829, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9830, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9831, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9832, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9833, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9834, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9835, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9836, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9837, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9838, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9839, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9840, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9841, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9842, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9843, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9844, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9845, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9846, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9847, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9848, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9849, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9850, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9851, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9852, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9853, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9854, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9855, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9856, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9857, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9858, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9859, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9860, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9861, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9862, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9863, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9864, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9865, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9866, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9867, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9868, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9869, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9870, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9871, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9872, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9873, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9874, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9875, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9876, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9877, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9878, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9879, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9880, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9881, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9882, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9883, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9884, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9885, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9886, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9887, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9888, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9889, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9890, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9891, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9892, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9893, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9894, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9895, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9896, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9897, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9898, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9899, 32704, 32767, 32768, 32831 }, //掛網房間
		{ 9900, 32640, 32959, 32704, 33087 }, //寶11逆戰
		{ 9901, 32640, 32831, 32704, 32895 }, //寶12破塔
		{ 9902, 32640, 32767, 32832, 32959 },//副本-惡魔實驗室
		{ 9903, 32640, 32767, 32832, 32959 },//副本-惡魔實驗室
		{ 9904, 32640, 32767, 32832, 32959 },//副本-惡魔實驗室
		{ 9905, 32640, 32767, 32832, 32959 },//副本-惡魔實驗室
		{ 9906, 32640, 32767, 32832, 32959 },//副本-惡魔實驗室
		{ 9907, 32640, 32767, 32832, 32959 },//副本-惡魔實驗室
		{ 9908, 32640, 32767, 32832, 32959 },//副本-惡魔實驗室
		{ 9909, 32640, 32767, 32832, 32959 },//副本-惡魔實驗室
		{ 9910, 32640, 32767, 32832, 32959 },//副本-惡魔實驗室
		{ 9911, 32640, 32767, 32832, 32959 },//副本-惡魔實驗室
		{ 9912, 32640, 32959, 32576, 33023 },//時空裂痕-火焰
		{ 9913, 32576, 32895, 32768, 33023 },//新 傳說地圖
		{ 9914, 32576, 32895, 32768, 33023 },//新 傳說地圖(非掛)
		{ 9915, 32640, 32959, 32704, 33087 }, //寶11逆戰(非掛)
		{ 9916, 32704, 32959, 32768, 33023 }, //失落之境(非掛)
		{ 9917, 32576, 32831, 32768, 33151 },//新-九階武防區258
		{ 9918, 32576, 32831, 32768, 33151 },//新-九階武防區(非掛)258
		{ 9919, 32256, 32767, 32768, 33279 },//八階武防區(非掛)440
		{ 9920, 32512, 33023, 32768, 33279 },//七階武防特區(非掛)1017
		{ 9921, 32576, 32831, 32704, 33087 },//新-六階武防區(非掛)780
		{ 9922, 32576, 32895, 32704, 33023 },//死幽谷535
		{ 9923, 32704, 32895, 32768, 32959 },//廢棄礦場5200
		{ 9924, 32640, 32959, 32704, 33023 },//殞落之地2003
		{ 9925, 32640, 32767, 32768, 32895 },//侏儒塔-284
		{ 9926,  32704,  32959,  32832,  33087 },// opqlo 新死幽谷 790
		
		{ 9990, 32640, 32959, 32576, 32895 },//TODO 台版地圖 - 隱藏之谷一階
		{ 9991, 32640, 32959, 32576, 32895 },//TODO 台版地圖 - 隱藏之谷二階
		{ 9992, 32640, 32959, 32576, 32895 },//TODO 台版地圖 - 隱藏之谷三階
		{ 9993, 32640, 32959, 32576, 32895 },//TODO 台版地圖 - 隱藏之谷四階
		{ 9994, 32640, 32959, 32576, 32895 },//TODO 台版地圖 - 隱藏之谷五階
		{ 9995, 32640, 32959, 32576, 32895 },//TODO 台版地圖 - 隱藏之谷
		{ 9996, 32640, 32959, 32576, 32895 },//TODO 台版地圖 - 隱藏之谷
		{ 9997, 32640, 32959, 32576, 32895 },//TODO 台版地圖 - 隱藏之谷
		{ 9998, 32640, 32959, 32576, 32895 },//TODO 台版地圖 - 隱藏之谷
		{ 9999, 32640, 32959, 32576, 32895 },//TODO 台版地圖 - 隱藏之谷
		{ 10000, 32640, 32959, 32704, 33087 },//opqlo 複製魔族神殿
		{ 16384, 32704, 32767, 32768, 32831 },
		{ 16896, 32704, 32767, 32768, 32831 },
		{ 17408, 32704, 32767, 32768, 32831 },
		{ 17920, 32704, 32767, 32768, 32831 },
		{ 18432, 32704, 32767, 32768, 32831 },
		{ 18944, 32704, 32767, 32768, 32831 },
		{ 19456, 32704, 32767, 32768, 32831 },
		{ 19968, 32704, 32767, 32768, 32831 },
		{ 20480, 32704, 32767, 32768, 32831 },
		{ 20992, 32704, 32767, 32768, 32831 },
		{ 21504, 32704, 32767, 32768, 32831 },
		{ 22016, 32704, 32767, 32768, 32831 },
		{ 22528, 32704, 32767, 32768, 32831 },
		{ 23040, 32704, 32767, 32768, 32831 },
		{ 23552, 32704, 32767, 32768, 32831 },
		{ 24064, 32704, 32767, 32768, 32831 },
		{ 24576, 32704, 32767, 32768, 32831 },
		{ 790,  32704,  32959,  32832,  33087 },// opqlo 黑暗的大洞穴 1區
		{ 7951,  32640,  32895,  32640,  32895 },// opqlo 6.2未知01
		{ 7952,  32640,  32895,  32640,  32895 },// opqlo 6.2未知02
		{ 7953,  32576,  32831,  32704,  32959 },// opqlo 6.2未知03
		{ 7954,  32576,  32831,  32704,  32959 },// opqlo 6.2未知04
		{ 7955,  32576,  32831,  32704,  32959 },// opqlo 6.2未知05
		{ 7956,  32576,  32831,  32704,  32959 },// opqlo 6.2未知06
		{ 7957,  32576,  32831,  32704,  32959 },// opqlo 6.2未知07
		{ 623,  32576,  32895,  32832,  33023 },// opqlo 可疑的天谷
		{ 8000,  32768,  32959,  32704,  32959 },// opqlo 城墎
		{ 1234,  32704,  32831,  32768,  32895 },// opqlo PSY的演場會 奇岩1
		{ 1920,  32576,  32959,  32576,  32959 },// opqlo 無線網路 第1區
		{ 1930,  32448,  32831,  32832,  33151 },// opqlo 回流勇士訓練所
		{ 2010,  32576,  33087,  32512,  32831 },// opqlo 暴風修練 區域(初級村)
		{ 25088, 32704, 32767, 32768, 32831 } };

	/**
	 * 全てのテキストマップを読み込む.
	 *
	 * @return Map
	 * @throws IOException
	 */
	@Override
	public HashMap<Integer, L1Map> read() throws IOException {
		final HashMap<Integer, L1Map> maps = new HashMap<Integer, L1Map>();

		for (final int[] info : MAP_INFO) {
			final int mapId = info[MAPINFO_MAP_NO];
			final int xSize = info[MAPINFO_END_X] - info[MAPINFO_START_X] + 1;
			final int ySize = info[MAPINFO_END_Y] - info[MAPINFO_START_Y] + 1;

			try {
				final L1V1Map map = new L1V1Map(
						(short) mapId, 
						this.read(mapId,xSize, ySize), 
						info[MAPINFO_START_X],
						info[MAPINFO_START_Y], 
						MapsTable.getInstance().isUnderwater(mapId), 
						MapsTable.getInstance().isMarkable(mapId), 
						MapsTable.getInstance().isTeleportable(mapId), 
						MapsTable.getInstance().isEscapable(mapId), 
						MapsTable.getInstance().isUseResurrection(mapId), 
						MapsTable.getInstance().isUsePainwand(mapId), 
						MapsTable.getInstance().isEnabledDeathPenalty(mapId),
						MapsTable.getInstance().isTakePets(mapId), 
						MapsTable.getInstance().isRecallPets(mapId), 
						MapsTable.getInstance().isUsableItem(mapId), 
						MapsTable.getInstance().isUsableSkill(mapId));

				maps.put(mapId, map);
			} catch (final IOException e) {
				_log.log(Level.SEVERE, e.getLocalizedMessage(), e);
			}
		}

		return maps;
	}

	/**
	 * 指定のマップ番号のテキストマップを読み込む.
	 *
	 * @param id
	 *            マップ番号
	 * @return L1Map
	 * @throws IOException
	 */
	@Override
	public L1Map read(final int id) throws IOException {
		for (final int[] info : MAP_INFO) {
			final int mapId = info[MAPINFO_MAP_NO];
			final int xSize = info[MAPINFO_END_X] - info[MAPINFO_START_X] + 1;
			final int ySize = info[MAPINFO_END_Y] - info[MAPINFO_START_Y] + 1;

			if (mapId == id) {
				final L1V1Map map = new L1V1Map((short) mapId, this.read(mapId,
						xSize, ySize), info[MAPINFO_START_X],
						info[MAPINFO_START_Y], MapsTable.getInstance()
						.isUnderwater(mapId), MapsTable.getInstance()
						.isMarkable(mapId), MapsTable.getInstance()
						.isTeleportable(mapId), MapsTable.getInstance()
						.isEscapable(mapId), MapsTable.getInstance()
						.isUseResurrection(mapId), MapsTable
						.getInstance().isUsePainwand(mapId), MapsTable
						.getInstance().isEnabledDeathPenalty(mapId),
						MapsTable.getInstance().isTakePets(mapId), MapsTable
						.getInstance().isRecallPets(mapId), MapsTable
						.getInstance().isUsableItem(mapId), MapsTable
						.getInstance().isUsableSkill(mapId));
				return map;
			}
		}
		throw new FileNotFoundException("MapId: " + id);
	}

	/**
	 * 指定のマップ番号のテキストマップを読み込む.
	 *
	 * @param mapId
	 *            マップ番号
	 * @param xSize
	 *            X座標のサイズ
	 * @param ySize
	 *            Y座標のサイズ
	 * @return byte[][]
	 * @throws IOException
	 */
	public byte[][] read(final int mapId, final int xSize, final int ySize)
			throws IOException {
		final byte[][] map = new byte[xSize][ySize];
		final LineNumberReader in = new LineNumberReader(new BufferedReader(
				new FileReader(MAP_DIR + mapId + ".txt")));

		int y = 0;
		String line;
		while ((line = in.readLine()) != null) {
			if (line.trim().length() == 0 || line.startsWith("#")) {
				continue;//TODO 空行とコメントをスキップ
			}

			int x = 0;
			final StringTokenizer tok = new StringTokenizer(line, ",");
			while (tok.hasMoreTokens()) {
				final byte tile = Byte.parseByte(tok.nextToken());
				map[x][y] = tile;

				x++;
			}
			y++;
		}
		in.close();
		return map;
	}
}
